home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 1.0 / CIncludes / Movies.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-18  |  62.8 KB  |  1,574 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Movies.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __MOVIES__
  13. #define __MOVIES__
  14.  
  15. #ifndef __QUICKDRAW__
  16. #include <Quickdraw.h>
  17. /*    #include <Types.h>                                            */
  18. /*        #include <ConditionalMacros.h>                            */
  19. /*        #include <MixedMode.h>                                    */
  20. /*            #include <Traps.h>                                    */
  21. /*    #include <QuickdrawText.h>                                    */
  22. /*        #include <IntlResources.h>                                */
  23. #endif
  24.  
  25. #ifndef __ALIASES__
  26. #include <Aliases.h>
  27. /*    #include <AppleTalk.h>                                        */
  28. /*        #include <OSUtils.h>                                    */
  29. /*    #include <Files.h>                                            */
  30. /*        #include <SegLoad.h>                                    */
  31. #endif
  32.  
  33. #ifndef __EVENTS__
  34. #include <Events.h>
  35. #endif
  36.  
  37. #ifndef __TOOLUTILS__
  38. #include <ToolUtils.h>
  39. /*    #include <TextUtils.h>                                        */
  40. /*        #include <Script.h>                                        */
  41. /*    #include <FixMath.h>                                        */
  42. #endif
  43.  
  44. #ifndef __MENUS__
  45. #include <Menus.h>
  46. #endif
  47.  
  48. #ifndef __COMPONENTS__
  49. #include <Components.h>
  50. #endif
  51.  
  52. #ifndef __IMAGECOMPRESSION__
  53. #include <ImageCompression.h>
  54. /*    #include <QDOffscreen.h>                                    */
  55. /*    #include <StandardFile.h>                                    */
  56. /*        #include <Dialogs.h>                                    */
  57. /*            #include <Windows.h>                                */
  58. /*                #include <Controls.h>                            */
  59. /*            #include <TextEdit.h>                                */
  60. #endif
  61.  
  62. #ifndef kFix1
  63. #define kFix1 (0x00010000)
  64.  
  65. #endif
  66.  
  67. #define MovieFileType 'MooV'
  68.  
  69. #define MediaHandlerType 'mhlr'
  70.  
  71. #define DataHandlerType 'dhlr'
  72.  
  73. #define VideoMediaType 'vide'
  74.  
  75. #define SoundMediaType 'soun'
  76.  
  77. #define TextMediaType 'text'
  78.  
  79. #define BaseMediaType 'gnrc'
  80.  
  81. #define VisualMediaCharacteristic 'eyes'
  82.  
  83. #define AudioMediaCharacteristic 'ears'
  84.  
  85. #define DoTheRightThing 0L
  86.  
  87. #if defined(powerc) || defined (__powerc)
  88. #pragma options align=mac68k
  89. #endif
  90. struct MovieRecord {
  91.     long                        data[1];
  92. };
  93. #if defined(powerc) || defined(__powerc)
  94. #pragma options align=reset
  95. #endif
  96.  
  97. typedef struct MovieRecord MovieRecord;
  98.  
  99. typedef MovieRecord *Movie;
  100.  
  101. #if defined(powerc) || defined (__powerc)
  102. #pragma options align=mac68k
  103. #endif
  104. struct TrackRecord {
  105.     long                        data[1];
  106. };
  107. #if defined(powerc) || defined(__powerc)
  108. #pragma options align=reset
  109. #endif
  110.  
  111. typedef struct TrackRecord TrackRecord;
  112.  
  113. typedef TrackRecord *Track;
  114.  
  115. #if defined(powerc) || defined (__powerc)
  116. #pragma options align=mac68k
  117. #endif
  118. struct MediaRecord {
  119.     long                        data[1];
  120. };
  121. #if defined(powerc) || defined(__powerc)
  122. #pragma options align=reset
  123. #endif
  124.  
  125. typedef struct MediaRecord MediaRecord;
  126.  
  127. typedef MediaRecord *Media;
  128.  
  129. #if defined(powerc) || defined (__powerc)
  130. #pragma options align=mac68k
  131. #endif
  132. struct UserDataRecord {
  133.     long                        data[1];
  134. };
  135. #if defined(powerc) || defined(__powerc)
  136. #pragma options align=reset
  137. #endif
  138.  
  139. typedef struct UserDataRecord UserDataRecord;
  140.  
  141. typedef UserDataRecord *UserData;
  142.  
  143. #if defined(powerc) || defined (__powerc)
  144. #pragma options align=mac68k
  145. #endif
  146. struct TrackEditStateRecord {
  147.     long                        data[1];
  148. };
  149. #if defined(powerc) || defined(__powerc)
  150. #pragma options align=reset
  151. #endif
  152.  
  153. typedef struct TrackEditStateRecord TrackEditStateRecord;
  154.  
  155. typedef TrackEditStateRecord *TrackEditState;
  156.  
  157. #if defined(powerc) || defined (__powerc)
  158. #pragma options align=mac68k
  159. #endif
  160. struct MovieEditStateRecord {
  161.     long                        data[1];
  162. };
  163. #if defined(powerc) || defined(__powerc)
  164. #pragma options align=reset
  165. #endif
  166.  
  167. typedef struct MovieEditStateRecord MovieEditStateRecord;
  168.  
  169. typedef MovieEditStateRecord *MovieEditState;
  170.  
  171. #if defined(powerc) || defined (__powerc)
  172. #pragma options align=mac68k
  173. #endif
  174. struct SampleDescription {
  175.     long                        descSize;
  176.     long                        dataFormat;
  177.     long                        resvd1;
  178.     short                        resvd2;
  179.     short                        dataRefIndex;
  180. };
  181. #if defined(powerc) || defined(__powerc)
  182. #pragma options align=reset
  183. #endif
  184.  
  185. typedef struct SampleDescription SampleDescription;
  186.  
  187. typedef SampleDescription *SampleDescriptionPtr, **SampleDescriptionHandle;
  188.  
  189. #if defined(powerc) || defined (__powerc)
  190. #pragma options align=mac68k
  191. #endif
  192. struct SoundDescription {
  193.     long                        descSize;
  194.     long                        dataFormat;
  195.     long                        resvd1;
  196.     short                        resvd2;
  197.     short                        dataRefIndex;
  198.     short                        version;
  199.     short                        revlevel;
  200.     long                        vendor;
  201.     short                        numChannels;
  202.     short                        sampleSize;
  203.     short                        compressionID;
  204.     short                        packetSize;
  205.     Fixed                        sampleRate;
  206. };
  207. #if defined(powerc) || defined(__powerc)
  208. #pragma options align=reset
  209. #endif
  210.  
  211. typedef struct SoundDescription SoundDescription;
  212.  
  213. typedef SoundDescription *SoundDescriptionPtr, **SoundDescriptionHandle;
  214.  
  215. #if defined(powerc) || defined (__powerc)
  216. #pragma options align=mac68k
  217. #endif
  218. struct TextDescription {
  219.     long                        size;
  220.     long                        type;
  221.     long                        resvd1;
  222.     short                        resvd2;
  223.     short                        dataRefIndex;
  224.     long                        displayFlags;
  225.     long                        textJustification;
  226.     RGBColor                    bgColor;
  227.     Rect                        defaultTextBox;
  228.     ScrpSTElement                defaultStyle;
  229.     char                        defaultFontName[1];
  230. };
  231. #if defined(powerc) || defined(__powerc)
  232. #pragma options align=reset
  233. #endif
  234.  
  235. typedef struct TextDescription TextDescription;
  236.  
  237. typedef TextDescription *TextDescriptionPtr, **TextDescriptionHandle;
  238.  
  239. enum  {
  240.     dfDontDisplay                = 1 << 0,
  241.     dfDontAutoScale                = 1 << 1,
  242.     dfClipToTextBox                = 1 << 2,
  243.     dfUseMovieBGColor            = 1 << 3,
  244.     dfShrinkTextBoxToFit        = 1 << 4,
  245.     dfScrollIn                    = 1 << 5,
  246.     dfScrollOut                    = 1 << 6,
  247.     dfHorizScroll                = 1 << 7,
  248.     dfReverseScroll                = 1 << 8,
  249.     dfContinuousScroll            = 1 << 9,
  250.     dfFlowHoriz                    = 1 << 10,
  251.     dfDropShadow                = 1 << 12,
  252.     dfAntiAlias                    = 1 << 13,
  253.     dfKeyedText                    = 1 << 14
  254. };
  255.  
  256. enum  {
  257.     movieProgressOpen            = 0,
  258.     movieProgressUpdatePercent    = 1,
  259.     movieProgressClose            = 2
  260. };
  261.  
  262. enum  {
  263.     progressOpFlatten            = 1,
  264.     progressOpInsertTrackSegment,
  265.     progressOpInsertMovieSegment,
  266.     progressOpPaste,
  267.     progressOpAddMovieSelection,
  268.     progressOpCopy,
  269.     progressOpCut,
  270.     progressOpLoadMovieIntoRam,
  271.     progressOpLoadTrackIntoRam,
  272.     progressOpLoadMediaIntoRam,
  273.     progressOpImportMovie,
  274.     progressOpExportMovie
  275. };
  276.  
  277. enum  {
  278.     mediaQualityDraft            = 0x0000,
  279.     mediaQualityNormal            = 0x0040,
  280.     mediaQualityBetter            = 0x0080,
  281.     mediaQualityBest            = 0x00C0
  282. };
  283.  
  284. typedef pascal OSErr (*MovieRgnCoverProcPtr)(Movie theMovie, RgnHandle changedRgn, long refcon);
  285.  
  286. enum {
  287.     uppMovieRgnCoverProcInfo = kPascalStackBased
  288.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  289.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Movie)))
  290.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(RgnHandle)))
  291.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  292. };
  293.  
  294. #if USESROUTINEDESCRIPTORS
  295. typedef UniversalProcPtr MovieRgnCoverUPP;
  296.  
  297. #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon)        \
  298.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, (theMovie), (changedRgn), (refcon))
  299. #define NewMovieRgnCoverProc(userRoutine)        \
  300.         (MovieRgnCoverUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, GetCurrentISA())
  301. #else
  302. typedef MovieRgnCoverProcPtr MovieRgnCoverUPP;
  303.  
  304. #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon)        \
  305.         (*(userRoutine))((theMovie), (changedRgn), (refcon))
  306. #define NewMovieRgnCoverProc(userRoutine)        \
  307.         (MovieRgnCoverUPP)(userRoutine)
  308. #endif
  309.  
  310. typedef pascal OSErr (*MovieProgressProcPtr)(Movie theMovie, short message, short whatOperation, Fixed percentDone, long refcon);
  311.  
  312. enum {
  313.     uppMovieProgressProcInfo = kPascalStackBased
  314.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  315.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Movie)))
  316.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  317.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short)))
  318.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(Fixed)))
  319.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long)))
  320. };
  321.  
  322. #if USESROUTINEDESCRIPTORS
  323. typedef UniversalProcPtr MovieProgressUPP;
  324.  
  325. #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon)        \
  326.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMovieProgressProcInfo, (theMovie), (message), (whatOperation), (percentDone), (refcon))
  327. #define NewMovieProgressProc(userRoutine)        \
  328.         (MovieProgressUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieProgressProcInfo, GetCurrentISA())
  329. #else
  330. typedef MovieProgressProcPtr MovieProgressUPP;
  331.  
  332. #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon)        \
  333.         (*(userRoutine))((theMovie), (message), (whatOperation), (percentDone), (refcon))
  334. #define NewMovieProgressProc(userRoutine)        \
  335.         (MovieProgressUPP)(userRoutine)
  336. #endif
  337.  
  338. typedef pascal OSErr (*MovieDrawingCompleteProcPtr)(Movie theMovie, long refCon);
  339.  
  340. enum {
  341.     uppMovieDrawingCompleteProcInfo = kPascalStackBased
  342.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  343.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Movie)))
  344.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  345. };
  346.  
  347. #if USESROUTINEDESCRIPTORS
  348. typedef UniversalProcPtr MovieDrawingCompleteUPP;
  349.  
  350. #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon)        \
  351.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, (theMovie), (refCon))
  352. #define NewMovieDrawingCompleteProc(userRoutine)        \
  353.         (MovieDrawingCompleteUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, GetCurrentISA())
  354. #else
  355. typedef MovieDrawingCompleteProcPtr MovieDrawingCompleteUPP;
  356.  
  357. #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon)        \
  358.         (*(userRoutine))((theMovie), (refCon))
  359. #define NewMovieDrawingCompleteProc(userRoutine)        \
  360.         (MovieDrawingCompleteUPP)(userRoutine)
  361. #endif
  362.  
  363. typedef pascal OSErr (*TrackTransferProcPtr)(Track t, long refCon);
  364.  
  365. enum {
  366.     uppTrackTransferProcInfo = kPascalStackBased
  367.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  368.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Track)))
  369.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  370. };
  371.  
  372. #if USESROUTINEDESCRIPTORS
  373. typedef UniversalProcPtr TrackTransferUPP;
  374.  
  375. #define CallTrackTransferProc(userRoutine, t, refCon)        \
  376.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTrackTransferProcInfo, (t), (refCon))
  377. #define NewTrackTransferProc(userRoutine)        \
  378.         (TrackTransferUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTrackTransferProcInfo, GetCurrentISA())
  379. #else
  380. typedef TrackTransferProcPtr TrackTransferUPP;
  381.  
  382. #define CallTrackTransferProc(userRoutine, t, refCon)        \
  383.         (*(userRoutine))((t), (refCon))
  384. #define NewTrackTransferProc(userRoutine)        \
  385.         (TrackTransferUPP)(userRoutine)
  386. #endif
  387.  
  388. typedef ComponentInstance MediaHandler, DataHandler;
  389.  
  390. typedef Component MediaHandlerComponent, DataHandlerComponent;
  391.  
  392. typedef ComponentResult HandlerError;
  393.  
  394. #ifndef kSmallestArray
  395. #define kSmallestArray 1
  396.  
  397. #endif
  398.  
  399. typedef long TimeValue;
  400.  
  401. typedef long TimeScale;
  402.  
  403. typedef Int64Bit CompTimeValue;
  404.  
  405. enum  {
  406.     loopTimeBase                = 1,
  407.     palindromeLoopTimeBase        = 2
  408. };
  409.  
  410. typedef unsigned long TimeBaseFlags;
  411.  
  412. #if defined(powerc) || defined (__powerc)
  413. #pragma options align=mac68k
  414. #endif
  415. struct TimeBaseRecord {
  416.     long                        data[1];
  417. };
  418. #if defined(powerc) || defined(__powerc)
  419. #pragma options align=reset
  420. #endif
  421.  
  422. typedef struct TimeBaseRecord TimeBaseRecord;
  423.  
  424. typedef TimeBaseRecord *TimeBase;
  425.  
  426. #if defined(powerc) || defined (__powerc)
  427. #pragma options align=mac68k
  428. #endif
  429. struct CallBackRecord {
  430.     long                        data[1];
  431. };
  432. #if defined(powerc) || defined(__powerc)
  433. #pragma options align=reset
  434. #endif
  435.  
  436. typedef struct CallBackRecord CallBackRecord;
  437.  
  438. typedef CallBackRecord *QTCallBack;
  439.  
  440. #if defined(powerc) || defined (__powerc)
  441. #pragma options align=mac68k
  442. #endif
  443. struct TimeRecord {
  444.     CompTimeValue                value;
  445.     TimeScale                    scale;
  446.     TimeBase                    base;
  447. };
  448. #if defined(powerc) || defined(__powerc)
  449. #pragma options align=reset
  450. #endif
  451.  
  452. typedef struct TimeRecord TimeRecord;
  453.  
  454. enum  {
  455.     triggerTimeFwd                = 0x0001,
  456.     triggerTimeBwd                = 0x0002,
  457.     triggerTimeEither            = 0x0003,
  458.     triggerRateLT                = 0x0004,
  459.     triggerRateGT                = 0x0008,
  460.     triggerRateEqual            = 0x0010,
  461.     triggerRateLTE                = triggerRateLT|triggerRateEqual,
  462.     triggerRateGTE                = triggerRateGT|triggerRateEqual,
  463.     triggerRateNotEqual            = triggerRateGT|triggerRateEqual|triggerRateLT,
  464.     triggerRateChange            = 0,
  465.     triggerAtStart                = 0x0001,
  466.     triggerAtStop                = 0x0002
  467. };
  468.  
  469. typedef unsigned short QTCallBackFlags;
  470.  
  471. enum  {
  472.     timeBaseBeforeStartTime        = 1,
  473.     timeBaseAfterStopTime        = 2
  474. };
  475.  
  476. typedef unsigned long TimeBaseStatus;
  477.  
  478. enum  {
  479.     callBackAtTime                = 1,
  480.     callBackAtRate                = 2,
  481.     callBackAtTimeJump            = 3,
  482.     callBackAtExtremes            = 4,
  483.     callBackAtInterrupt            = 0x8000
  484. };
  485.  
  486. typedef unsigned short QTCallBackType;
  487.  
  488. typedef pascal void (*QTCallBackProcPtr)(QTCallBack cb, long refCon);
  489.  
  490. enum {
  491.     uppQTCallBackProcInfo = kPascalStackBased
  492.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(QTCallBack)))
  493.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  494. };
  495.  
  496. #if USESROUTINEDESCRIPTORS
  497. typedef UniversalProcPtr QTCallBackUPP;
  498.  
  499. #define CallQTCallBackProc(userRoutine, cb, refCon)        \
  500.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppQTCallBackProcInfo, (cb), (refCon))
  501. #define NewQTCallBackProc(userRoutine)        \
  502.         (QTCallBackUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTCallBackProcInfo, GetCurrentISA())
  503. #else
  504. typedef QTCallBackProcPtr QTCallBackUPP;
  505.  
  506. #define CallQTCallBackProc(userRoutine, cb, refCon)        \
  507.         (*(userRoutine))((cb), (refCon))
  508. #define NewQTCallBackProc(userRoutine)        \
  509.         (QTCallBackUPP)(userRoutine)
  510. #endif
  511.  
  512. enum  {
  513.     qtcbNeedsRateChanges        = 1,
  514.     qtcbNeedsTimeChanges        = 2,
  515.     qtcbNeedsStartStopChanges    = 4
  516. };
  517.  
  518. #if defined(powerc) || defined (__powerc)
  519. #pragma options align=mac68k
  520. #endif
  521. struct QTCallBackHeader {
  522.     long                        callBackFlags;
  523.     long                        reserved1;
  524.     char                        qtPrivate[40];
  525. };
  526. #if defined(powerc) || defined(__powerc)
  527. #pragma options align=reset
  528. #endif
  529.  
  530. typedef struct QTCallBackHeader QTCallBackHeader;
  531.  
  532. enum  {
  533.     keepInRam                    = 1 << 0,
  534.     unkeepInRam                    = 1 << 1,
  535.     flushFromRam                = 1 << 2,
  536.     loadForwardTrackEdits        = 1 << 3,
  537.     loadBackwardTrackEdits        = 1 << 4
  538. };
  539.  
  540. typedef pascal Boolean (*MoviePreviewCallOutProcPtr)(long refcon);
  541.  
  542. enum {
  543.     uppMoviePreviewCallOutProcInfo = kPascalStackBased
  544.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  545.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  546. };
  547.  
  548. #if USESROUTINEDESCRIPTORS
  549. typedef UniversalProcPtr MoviePreviewCallOutUPP;
  550.  
  551. #define CallMoviePreviewCallOutProc(userRoutine, refcon)        \
  552.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, (refcon))
  553. #define NewMoviePreviewCallOutProc(userRoutine)        \
  554.         (MoviePreviewCallOutUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, GetCurrentISA())
  555. #else
  556. typedef MoviePreviewCallOutProcPtr MoviePreviewCallOutUPP;
  557.  
  558. #define CallMoviePreviewCallOutProc(userRoutine, refcon)        \
  559.         (*(userRoutine))((refcon))
  560. #define NewMoviePreviewCallOutProc(userRoutine)        \
  561.         (MoviePreviewCallOutUPP)(userRoutine)
  562. #endif
  563.  
  564. enum  {
  565.     newMovieActive                = 1 << 0,
  566.     newMovieDontResolveDataRefs    = 1 << 1,
  567.     newMovieDontAskUnresolvedDataRefs = 1 << 2,
  568.     newMovieDontAutoAlternates    = 1 << 3
  569. };
  570.  
  571. enum  {
  572.     trackUsageInMovie            = 1 << 1,
  573.     trackUsageInPreview            = 1 << 2,
  574.     trackUsageInPoster            = 1 << 3
  575. };
  576.  
  577. enum  {
  578.     mediaSampleNotSync            = 1 << 0,
  579.     mediaSampleShadowSync        = 1 << 1
  580. };
  581.  
  582. enum  {
  583.     pasteInParallel                = 1,
  584.     showUserSettingsDialog        = 2
  585. };
  586.  
  587. enum  {
  588.     nextTimeMediaSample            = 1 << 0,
  589.     nextTimeMediaEdit            = 1 << 1,
  590.     nextTimeTrackEdit            = 1 << 2,
  591.     nextTimeSyncSample            = 1 << 3,
  592.     nextTimeEdgeOK                = 1 << 14,
  593.     nextTimeIgnoreActiveSegment    = 1 << 15
  594. };
  595.  
  596. typedef unsigned short nextTimeFlagsEnum;
  597.  
  598. enum  {
  599.     createMovieFileDeleteCurFile = 1L << 31,
  600.     createMovieFileDontCreateMovie = 1L << 30,
  601.     createMovieFileDontOpenFile    = 1L << 29
  602. };
  603.  
  604. typedef unsigned long createMovieFileFlagsEnum;
  605.  
  606. enum  {
  607.     flattenAddMovieToDataFork    = 1L << 0,
  608.     flattenActiveTracksOnly        = 1L << 2,
  609.     flattenDontInterleaveFlatten = 1L << 3
  610. };
  611.  
  612. typedef unsigned long movieFlattenFlagsEnum;
  613.  
  614. enum  {
  615.     movieInDataForkResID        = -1
  616. };
  617.  
  618. enum  {
  619.     mcTopLeftMovie                = 1 << 0,
  620.     mcScaleMovieToFit            = 1 << 1,
  621.     mcWithBadge                    = 1 << 2,
  622.     mcNotVisible                = 1 << 3,
  623.     mcWithFrame                    = 1 << 4
  624. };
  625.  
  626. enum  {
  627.     movieScrapDontZeroScrap        = 1 << 0,
  628.     movieScrapOnlyPutMovie        = 1 << 1
  629. };
  630.  
  631. enum  {
  632.     dataRefSelfReference        = 1 << 0,
  633.     dataRefWasNotResolved        = 1 << 1
  634. };
  635.  
  636. typedef unsigned long dataRefAttributesFlags;
  637.  
  638. enum  {
  639.     hintsScrubMode                = 1 << 0,
  640.     hintsUseScreenBuffer        = 1 << 5,
  641.     hintsAllowInterlace            = 1 << 6,
  642.     hintsUseSoundInterp            = 1 << 7,
  643.     hintsHighQuality            = 1 << 8
  644. };
  645.  
  646. typedef unsigned long playHintsEnum;
  647.  
  648. enum  {
  649.     mediaHandlerFlagBaseClient    = 1
  650. };
  651.  
  652. typedef unsigned long mediaHandlerFlagsEnum;
  653.  
  654. #ifdef __cplusplus
  655. extern "C" {
  656. #endif
  657.  
  658. extern pascal OSErr EnterMovies(void)
  659.  TWOWORDINLINE(0x7001, 0xAAAA);
  660. extern pascal void ExitMovies(void)
  661.  TWOWORDINLINE(0x7002, 0xAAAA);
  662. typedef pascal void (*MoviesErrorProcPtr)(OSErr theErr, long refcon);
  663.  
  664. enum {
  665.     uppMoviesErrorProcInfo = kPascalStackBased
  666.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(OSErr)))
  667.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  668. };
  669.  
  670. #if USESROUTINEDESCRIPTORS
  671. typedef UniversalProcPtr MoviesErrorUPP;
  672.  
  673. #define CallMoviesErrorProc(userRoutine, theErr, refcon)        \
  674.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMoviesErrorProcInfo, (theErr), (refcon))
  675. #define NewMoviesErrorProc(userRoutine)        \
  676.         (MoviesErrorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviesErrorProcInfo, GetCurrentISA())
  677. #else
  678. typedef MoviesErrorProcPtr MoviesErrorUPP;
  679.  
  680. #define CallMoviesErrorProc(userRoutine, theErr, refcon)        \
  681.         (*(userRoutine))((theErr), (refcon))
  682. #define NewMoviesErrorProc(userRoutine)        \
  683.         (MoviesErrorUPP)(userRoutine)
  684. #endif
  685.  
  686. extern pascal OSErr GetMoviesError(void)
  687.  TWOWORDINLINE(0x7003, 0xAAAA);
  688. extern pascal void ClearMoviesStickyError(void)
  689.  THREEWORDINLINE(0x303C, 0xDE, 0xAAAA);
  690. extern pascal OSErr GetMoviesStickyError(void)
  691.  TWOWORDINLINE(0x7004, 0xAAAA);
  692. extern pascal void SetMoviesErrorProc(MoviesErrorUPP errProc, long refcon)
  693.  THREEWORDINLINE(0x303C, 0xEF, 0xAAAA);
  694. extern pascal void MoviesTask(Movie theMovie, long maxMilliSecToUse)
  695.  TWOWORDINLINE(0x7005, 0xAAAA);
  696. extern pascal void PreflightMovie(Movie theMovie, Track onlyThisTrack, long inFlags, long *outFlags)
  697.  THREEWORDINLINE(0x303C, 0x1DF, 0xAAAA);
  698. extern pascal OSErr PrerollMovie(Movie theMovie, TimeValue time, Fixed Rate)
  699.  TWOWORDINLINE(0x7006, 0xAAAA);
  700. extern pascal OSErr LoadMovieIntoRam(Movie theMovie, TimeValue time, TimeValue duration, long flags)
  701.  TWOWORDINLINE(0x7007, 0xAAAA);
  702. extern pascal OSErr LoadTrackIntoRam(Track theTrack, TimeValue time, TimeValue duration, long flags)
  703.  THREEWORDINLINE(0x303C, 0x16E, 0xAAAA);
  704. extern pascal OSErr LoadMediaIntoRam(Media theMedia, TimeValue time, TimeValue duration, long flags)
  705.  TWOWORDINLINE(0x7008, 0xAAAA);
  706. extern pascal void SetMovieActive(Movie theMovie, Boolean active)
  707.  TWOWORDINLINE(0x7009, 0xAAAA);
  708. extern pascal Boolean GetMovieActive(Movie theMovie)
  709.  TWOWORDINLINE(0x700A, 0xAAAA);
  710. extern pascal void StartMovie(Movie theMovie)
  711.  TWOWORDINLINE(0x700B, 0xAAAA);
  712. extern pascal void StopMovie(Movie theMovie)
  713.  TWOWORDINLINE(0x700C, 0xAAAA);
  714. extern pascal void GoToBeginningOfMovie(Movie theMovie)
  715.  TWOWORDINLINE(0x700D, 0xAAAA);
  716. extern pascal void GoToEndOfMovie(Movie theMovie)
  717.  TWOWORDINLINE(0x700E, 0xAAAA);
  718. extern pascal Boolean IsMovieDone(Movie theMovie)
  719.  THREEWORDINLINE(0x303C, 0xDD, 0xAAAA);
  720. extern pascal Boolean GetMoviePreviewMode(Movie theMovie)
  721.  TWOWORDINLINE(0x700F, 0xAAAA);
  722. extern pascal void SetMoviePreviewMode(Movie theMovie, Boolean usePreview)
  723.  TWOWORDINLINE(0x7010, 0xAAAA);
  724. extern pascal void ShowMoviePoster(Movie theMovie)
  725.  TWOWORDINLINE(0x7011, 0xAAAA);
  726. extern pascal void PlayMoviePreview(Movie theMovie, MoviePreviewCallOutUPP callOutProc, long refcon)
  727.  THREEWORDINLINE(0x303C, 0xF2, 0xAAAA);
  728. extern pascal TimeBase GetMovieTimeBase(Movie theMovie)
  729.  TWOWORDINLINE(0x7012, 0xAAAA);
  730. extern pascal void SetMovieMasterTimeBase(Movie theMovie, TimeBase tb, const TimeRecord *slaveZero)
  731.  THREEWORDINLINE(0x303C, 0x167, 0xAAAA);
  732. extern pascal void SetMovieMasterClock(Movie theMovie, Component clockMeister, const TimeRecord *slaveZero)
  733.  THREEWORDINLINE(0x303C, 0x168, 0xAAAA);
  734. extern pascal void GetMovieGWorld(Movie theMovie, CGrafPtr *port, GDHandle *gdh)
  735.  TWOWORDINLINE(0x7015, 0xAAAA);
  736. extern pascal void SetMovieGWorld(Movie theMovie, CGrafPtr port, GDHandle gdh)
  737.  TWOWORDINLINE(0x7016, 0xAAAA);
  738. enum  {
  739.     movieDrawingCallWhenChanged    = 0,
  740.     movieDrawingCallAlways        = 1
  741. };
  742.  
  743. extern pascal void SetMovieDrawingCompleteProc(Movie theMovie, long flags, MovieDrawingCompleteUPP proc, long refCon)
  744.  THREEWORDINLINE(0x303C, 0x1DE, 0xAAAA);
  745. enum  {
  746.     trackClippingTracksInFront    = 1 << 0,
  747.     trackClippingTracksBehind    = 1 << 1,
  748.     trackClippingIncludeTrack    = 1 << 2,
  749.     trackClippingIncludeTranslucentTracks = 1 << 3
  750. };
  751.  
  752. extern pascal void SetTrackGWorld(Track theTrack, CGrafPtr port, GDHandle gdh, TrackTransferUPP proc, long refCon)
  753.  THREEWORDINLINE(0x303C, 0x9D, 0xAAAA);
  754. extern pascal PicHandle GetMoviePict(Movie theMovie, TimeValue time)
  755.  TWOWORDINLINE(0x701D, 0xAAAA);
  756. extern pascal PicHandle GetTrackPict(Track theTrack, TimeValue time)
  757.  TWOWORDINLINE(0x701E, 0xAAAA);
  758. extern pascal PicHandle GetMoviePosterPict(Movie theMovie)
  759.  THREEWORDINLINE(0x303C, 0xF7, 0xAAAA);
  760. extern pascal OSErr UpdateMovie(Movie theMovie)
  761.  TWOWORDINLINE(0x701F, 0xAAAA);
  762. extern pascal void GetMovieBox(Movie theMovie, Rect *boxRect)
  763.  THREEWORDINLINE(0x303C, 0xF9, 0xAAAA);
  764. extern pascal void SetMovieBox(Movie theMovie, const Rect *boxRect)
  765.  THREEWORDINLINE(0x303C, 0xFA, 0xAAAA);
  766. extern pascal RgnHandle GetMovieDisplayClipRgn(Movie theMovie)
  767.  THREEWORDINLINE(0x303C, 0xFC, 0xAAAA);
  768. extern pascal void SetMovieDisplayClipRgn(Movie theMovie, RgnHandle theClip)
  769.  THREEWORDINLINE(0x303C, 0xFD, 0xAAAA);
  770. extern pascal RgnHandle GetMovieClipRgn(Movie theMovie)
  771.  THREEWORDINLINE(0x303C, 0x100, 0xAAAA);
  772. extern pascal void SetMovieClipRgn(Movie theMovie, RgnHandle theClip)
  773.  THREEWORDINLINE(0x303C, 0x101, 0xAAAA);
  774. extern pascal RgnHandle GetTrackClipRgn(Track theTrack)
  775.  THREEWORDINLINE(0x303C, 0x102, 0xAAAA);
  776. extern pascal void SetTrackClipRgn(Track theTrack, RgnHandle theClip)
  777.  THREEWORDINLINE(0x303C, 0x103, 0xAAAA);
  778. extern pascal RgnHandle GetMovieDisplayBoundsRgn(Movie theMovie)
  779.  THREEWORDINLINE(0x303C, 0xFB, 0xAAAA);
  780. extern pascal RgnHandle GetTrackDisplayBoundsRgn(Track theTrack)
  781.  THREEWORDINLINE(0x303C, 0x112, 0xAAAA);
  782. extern pascal RgnHandle GetMovieBoundsRgn(Movie theMovie)
  783.  THREEWORDINLINE(0x303C, 0xFE, 0xAAAA);
  784. extern pascal RgnHandle GetTrackMovieBoundsRgn(Track theTrack)
  785.  THREEWORDINLINE(0x303C, 0xFF, 0xAAAA);
  786. extern pascal RgnHandle GetTrackBoundsRgn(Track theTrack)
  787.  THREEWORDINLINE(0x303C, 0x111, 0xAAAA);
  788. extern pascal PixMapHandle GetTrackMatte(Track theTrack)
  789.  THREEWORDINLINE(0x303C, 0x115, 0xAAAA);
  790. extern pascal void SetTrackMatte(Track theTrack, PixMapHandle theMatte)
  791.  THREEWORDINLINE(0x303C, 0x116, 0xAAAA);
  792. extern pascal void DisposeMatte(PixMapHandle theMatte)
  793.  THREEWORDINLINE(0x303C, 0x14A, 0xAAAA);
  794. extern pascal Movie NewMovie(long flags)
  795.  THREEWORDINLINE(0x303C, 0x187, 0xAAAA);
  796. extern pascal OSErr PutMovieIntoHandle(Movie theMovie, Handle publicMovie)
  797.  TWOWORDINLINE(0x7022, 0xAAAA);
  798. extern pascal OSErr PutMovieIntoDataFork(Movie theMovie, short fRefNum, long offset, long maxSize)
  799.  THREEWORDINLINE(0x303C, 0x1B4, 0xAAAA);
  800. extern pascal void DisposeMovie(Movie theMovie)
  801.  TWOWORDINLINE(0x7023, 0xAAAA);
  802. extern pascal unsigned long GetMovieCreationTime(Movie theMovie)
  803.  TWOWORDINLINE(0x7026, 0xAAAA);
  804. extern pascal unsigned long GetMovieModificationTime(Movie theMovie)
  805.  TWOWORDINLINE(0x7027, 0xAAAA);
  806. extern pascal TimeScale GetMovieTimeScale(Movie theMovie)
  807.  TWOWORDINLINE(0x7029, 0xAAAA);
  808. extern pascal void SetMovieTimeScale(Movie theMovie, TimeScale timeScale)
  809.  TWOWORDINLINE(0x702A, 0xAAAA);
  810. extern pascal TimeValue GetMovieDuration(Movie theMovie)
  811.  TWOWORDINLINE(0x702B, 0xAAAA);
  812. extern pascal Fixed GetMovieRate(Movie theMovie)
  813.  TWOWORDINLINE(0x702C, 0xAAAA);
  814. extern pascal void SetMovieRate(Movie theMovie, Fixed rate)
  815.  TWOWORDINLINE(0x702D, 0xAAAA);
  816. extern pascal Fixed GetMoviePreferredRate(Movie theMovie)
  817.  THREEWORDINLINE(0x303C, 0xF3, 0xAAAA);
  818. extern pascal void SetMoviePreferredRate(Movie theMovie, Fixed rate)
  819.  THREEWORDINLINE(0x303C, 0xF4, 0xAAAA);
  820. extern pascal short GetMoviePreferredVolume(Movie theMovie)
  821.  THREEWORDINLINE(0x303C, 0xF5, 0xAAAA);
  822. extern pascal void SetMoviePreferredVolume(Movie theMovie, short volume)
  823.  THREEWORDINLINE(0x303C, 0xF6, 0xAAAA);
  824. extern pascal short GetMovieVolume(Movie theMovie)
  825.  TWOWORDINLINE(0x702E, 0xAAAA);
  826. extern pascal void SetMovieVolume(Movie theMovie, short volume)
  827.  TWOWORDINLINE(0x702F, 0xAAAA);
  828. extern pascal void GetMovieMatrix(Movie theMovie, MatrixRecord *matrix)
  829.  TWOWORDINLINE(0x7031, 0xAAAA);
  830. extern pascal void SetMovieMatrix(Movie theMovie, const MatrixRecord *matrix)
  831.  TWOWORDINLINE(0x7032, 0xAAAA);
  832. extern pascal void GetMoviePreviewTime(Movie theMovie, TimeValue *previewTime, TimeValue *previewDuration)
  833.  TWOWORDINLINE(0x7033, 0xAAAA);
  834. extern pascal void SetMoviePreviewTime(Movie theMovie, TimeValue previewTime, TimeValue previewDuration)
  835.  TWOWORDINLINE(0x7034, 0xAAAA);
  836. extern pascal TimeValue GetMoviePosterTime(Movie theMovie)
  837.  TWOWORDINLINE(0x7035, 0xAAAA);
  838. extern pascal void SetMoviePosterTime(Movie theMovie, TimeValue posterTime)
  839.  TWOWORDINLINE(0x7036, 0xAAAA);
  840. extern pascal void GetMovieSelection(Movie theMovie, TimeValue *selectionTime, TimeValue *selectionDuration)
  841.  TWOWORDINLINE(0x7037, 0xAAAA);
  842. extern pascal void SetMovieSelection(Movie theMovie, TimeValue selectionTime, TimeValue selectionDuration)
  843.  TWOWORDINLINE(0x7038, 0xAAAA);
  844. extern pascal void SetMovieActiveSegment(Movie theMovie, TimeValue startTime, TimeValue duration)
  845.  THREEWORDINLINE(0x303C, 0x15C, 0xAAAA);
  846. extern pascal void GetMovieActiveSegment(Movie theMovie, TimeValue *startTime, TimeValue *duration)
  847.  THREEWORDINLINE(0x303C, 0x15D, 0xAAAA);
  848. extern pascal TimeValue GetMovieTime(Movie theMovie, TimeRecord *currentTime)
  849.  TWOWORDINLINE(0x7039, 0xAAAA);
  850. extern pascal void SetMovieTime(Movie theMovie, const TimeRecord *newtime)
  851.  TWOWORDINLINE(0x703C, 0xAAAA);
  852. extern pascal void SetMovieTimeValue(Movie theMovie, TimeValue newtime)
  853.  TWOWORDINLINE(0x703D, 0xAAAA);
  854. extern pascal UserData GetMovieUserData(Movie theMovie)
  855.  TWOWORDINLINE(0x703E, 0xAAAA);
  856. extern pascal long GetMovieTrackCount(Movie theMovie)
  857.  TWOWORDINLINE(0x703F, 0xAAAA);
  858. extern pascal Track GetMovieTrack(Movie theMovie, long trackID)
  859.  TWOWORDINLINE(0x7040, 0xAAAA);
  860. extern pascal Track GetMovieIndTrack(Movie theMovie, long index)
  861.  THREEWORDINLINE(0x303C, 0x117, 0xAAAA);
  862. extern pascal long GetTrackID(Track theTrack)
  863.  THREEWORDINLINE(0x303C, 0x127, 0xAAAA);
  864. extern pascal Movie GetTrackMovie(Track theTrack)
  865.  THREEWORDINLINE(0x303C, 0xD0, 0xAAAA);
  866. extern pascal Track NewMovieTrack(Movie theMovie, Fixed width, Fixed height, short trackVolume)
  867.  THREEWORDINLINE(0x303C, 0x188, 0xAAAA);
  868. extern pascal void DisposeMovieTrack(Track theTrack)
  869.  TWOWORDINLINE(0x7042, 0xAAAA);
  870. extern pascal unsigned long GetTrackCreationTime(Track theTrack)
  871.  TWOWORDINLINE(0x7043, 0xAAAA);
  872. extern pascal unsigned long GetTrackModificationTime(Track theTrack)
  873.  TWOWORDINLINE(0x7044, 0xAAAA);
  874. extern pascal Boolean GetTrackEnabled(Track theTrack)
  875.  TWOWORDINLINE(0x7045, 0xAAAA);
  876. extern pascal void SetTrackEnabled(Track theTrack, Boolean isEnabled)
  877.  TWOWORDINLINE(0x7046, 0xAAAA);
  878. extern pascal long GetTrackUsage(Track theTrack)
  879.  TWOWORDINLINE(0x7047, 0xAAAA);
  880. extern pascal void SetTrackUsage(Track theTrack, long usage)
  881.  TWOWORDINLINE(0x7048, 0xAAAA);
  882. extern pascal TimeValue GetTrackDuration(Track theTrack)
  883.  TWOWORDINLINE(0x704B, 0xAAAA);
  884. extern pascal TimeValue GetTrackOffset(Track theTrack)
  885.  TWOWORDINLINE(0x704C, 0xAAAA);
  886. extern pascal void SetTrackOffset(Track theTrack, TimeValue movieOffsetTime)
  887.  TWOWORDINLINE(0x704D, 0xAAAA);
  888. extern pascal short GetTrackLayer(Track theTrack)
  889.  TWOWORDINLINE(0x7050, 0xAAAA);
  890. extern pascal void SetTrackLayer(Track theTrack, short layer)
  891.  TWOWORDINLINE(0x7051, 0xAAAA);
  892. extern pascal Track GetTrackAlternate(Track theTrack)
  893.  TWOWORDINLINE(0x7052, 0xAAAA);
  894. extern pascal void SetTrackAlternate(Track theTrack, Track alternateT)
  895.  TWOWORDINLINE(0x7053, 0xAAAA);
  896. extern pascal void SetAutoTrackAlternatesEnabled(Movie theMovie, Boolean enable)
  897.  THREEWORDINLINE(0x303C, 0x15E, 0xAAAA);
  898. extern pascal void SelectMovieAlternates(Movie theMovie)
  899.  THREEWORDINLINE(0x303C, 0x15F, 0xAAAA);
  900. extern pascal short GetTrackVolume(Track theTrack)
  901.  TWOWORDINLINE(0x7054, 0xAAAA);
  902. extern pascal void SetTrackVolume(Track theTrack, short volume)
  903.  TWOWORDINLINE(0x7055, 0xAAAA);
  904. extern pascal void GetTrackMatrix(Track theTrack, MatrixRecord *matrix)
  905.  TWOWORDINLINE(0x7056, 0xAAAA);
  906. extern pascal void SetTrackMatrix(Track theTrack, const MatrixRecord *matrix)
  907.  TWOWORDINLINE(0x7057, 0xAAAA);
  908. extern pascal void GetTrackDimensions(Track theTrack, Fixed *width, Fixed *height)
  909.  TWOWORDINLINE(0x705D, 0xAAAA);
  910. extern pascal void SetTrackDimensions(Track theTrack, Fixed width, Fixed height)
  911.  TWOWORDINLINE(0x705E, 0xAAAA);
  912. extern pascal UserData GetTrackUserData(Track theTrack)
  913.  TWOWORDINLINE(0x705F, 0xAAAA);
  914. extern pascal Media NewTrackMedia(Track theTrack, OSType mediaType, TimeScale timeScale, Handle dataRef, OSType dataRefType)
  915.  THREEWORDINLINE(0x303C, 0x18E, 0xAAAA);
  916. extern pascal void DisposeTrackMedia(Media theMedia)
  917.  TWOWORDINLINE(0x7061, 0xAAAA);
  918. extern pascal Media GetTrackMedia(Track theTrack)
  919.  TWOWORDINLINE(0x7062, 0xAAAA);
  920. extern pascal Track GetMediaTrack(Media theMedia)
  921.  THREEWORDINLINE(0x303C, 0xC5, 0xAAAA);
  922. extern pascal unsigned long GetMediaCreationTime(Media theMedia)
  923.  TWOWORDINLINE(0x7066, 0xAAAA);
  924. extern pascal unsigned long GetMediaModificationTime(Media theMedia)
  925.  TWOWORDINLINE(0x7067, 0xAAAA);
  926. extern pascal TimeScale GetMediaTimeScale(Media theMedia)
  927.  TWOWORDINLINE(0x7068, 0xAAAA);
  928. extern pascal void SetMediaTimeScale(Media theMedia, TimeScale timeScale)
  929.  TWOWORDINLINE(0x7069, 0xAAAA);
  930. extern pascal TimeValue GetMediaDuration(Media theMedia)
  931.  TWOWORDINLINE(0x706A, 0xAAAA);
  932. extern pascal short GetMediaLanguage(Media theMedia)
  933.  TWOWORDINLINE(0x706B, 0xAAAA);
  934. extern pascal void SetMediaLanguage(Media theMedia, short language)
  935.  TWOWORDINLINE(0x706C, 0xAAAA);
  936. extern pascal short GetMediaQuality(Media theMedia)
  937.  TWOWORDINLINE(0x706D, 0xAAAA);
  938. extern pascal void SetMediaQuality(Media theMedia, short quality)
  939.  TWOWORDINLINE(0x706E, 0xAAAA);
  940. extern pascal void GetMediaHandlerDescription(Media theMedia, OSType *mediaType, Str255 creatorName, OSType *creatorManufacturer)
  941.  TWOWORDINLINE(0x706F, 0xAAAA);
  942. extern pascal UserData GetMediaUserData(Media theMedia)
  943.  TWOWORDINLINE(0x7070, 0xAAAA);
  944. extern pascal MediaHandler GetMediaHandler(Media theMedia)
  945.  TWOWORDINLINE(0x7071, 0xAAAA);
  946. extern pascal OSErr SetMediaHandler(Media theMedia, MediaHandlerComponent mH)
  947.  THREEWORDINLINE(0x303C, 0x190, 0xAAAA);
  948. extern pascal OSErr BeginMediaEdits(Media theMedia)
  949.  TWOWORDINLINE(0x7072, 0xAAAA);
  950. extern pascal OSErr EndMediaEdits(Media theMedia)
  951.  TWOWORDINLINE(0x7073, 0xAAAA);
  952. extern pascal OSErr SetMediaDefaultDataRefIndex(Media theMedia, short index)
  953.  THREEWORDINLINE(0x303C, 0x1E0, 0xAAAA);
  954. extern pascal void GetMediaDataHandlerDescription(Media theMedia, short index, OSType *dhType, Str255 creatorName, OSType *creatorManufacturer)
  955.  THREEWORDINLINE(0x303C, 0x19E, 0xAAAA);
  956. extern pascal DataHandler GetMediaDataHandler(Media theMedia, short index)
  957.  THREEWORDINLINE(0x303C, 0x19F, 0xAAAA);
  958. extern pascal OSErr SetMediaDataHandler(Media theMedia, short index, DataHandlerComponent dataHandler)
  959.  THREEWORDINLINE(0x303C, 0x1A0, 0xAAAA);
  960. extern pascal long GetMediaSampleDescriptionCount(Media theMedia)
  961.  TWOWORDINLINE(0x7077, 0xAAAA);
  962. extern pascal void GetMediaSampleDescription(Media theMedia, long index, SampleDescriptionHandle descH)
  963.  TWOWORDINLINE(0x7078, 0xAAAA);
  964. extern pascal OSErr SetMediaSampleDescription(Media theMedia, long index, SampleDescriptionHandle descH)
  965.  THREEWORDINLINE(0x303C, 0x1D0, 0xAAAA);
  966. extern pascal long GetMediaSampleCount(Media theMedia)
  967.  TWOWORDINLINE(0x7079, 0xAAAA);
  968. extern pascal void SampleNumToMediaTime(Media theMedia, long logicalSampleNum, TimeValue *sampleTime, TimeValue *sampleDuration)
  969.  TWOWORDINLINE(0x707A, 0xAAAA);
  970. extern pascal void MediaTimeToSampleNum(Media theMedia, TimeValue time, long *sampleNum, TimeValue *sampleTime, TimeValue *sampleDuration)
  971.  TWOWORDINLINE(0x707B, 0xAAAA);
  972. extern pascal OSErr AddMediaSample(Media theMedia, Handle dataIn, long inOffset, unsigned long size, TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags, TimeValue *sampleTime)
  973.  TWOWORDINLINE(0x707C, 0xAAAA);
  974. extern pascal OSErr AddMediaSampleReference(Media theMedia, long dataOffset, unsigned long size, TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags, TimeValue *sampleTime)
  975.  TWOWORDINLINE(0x707D, 0xAAAA);
  976. extern pascal OSErr GetMediaSample(Media theMedia, Handle dataOut, long maxSizeToGrow, long *size, TimeValue time, TimeValue *sampleTime, TimeValue *durationPerSample, SampleDescriptionHandle sampleDescriptionH, long *sampleDescriptionIndex, long maxNumberOfSamples, long *numberOfSamples, short *sampleFlags)
  977.  TWOWORDINLINE(0x707E, 0xAAAA);
  978. extern pascal OSErr GetMediaSampleReference(Media theMedia, long *dataOffset, long *size, TimeValue time, TimeValue *sampleTime, TimeValue *durationPerSample, SampleDescriptionHandle sampleDescriptionH, long *sampleDescriptionIndex, long maxNumberOfSamples, long *numberOfSamples, short *sampleFlags)
  979.  TWOWORDINLINE(0x707F, 0xAAAA);
  980. extern pascal OSErr SetMediaShadowSync(Media theMedia, long frameDiffSampleNum, long syncSampleNum)
  981.  THREEWORDINLINE(0x303C, 0x121, 0xAAAA);
  982. extern pascal OSErr GetMediaShadowSync(Media theMedia, long frameDiffSampleNum, long *syncSampleNum)
  983.  THREEWORDINLINE(0x303C, 0x122, 0xAAAA);
  984. extern pascal OSErr InsertMediaIntoTrack(Track theTrack, TimeValue trackStart, TimeValue mediaTime, TimeValue mediaDuration, Fixed mediaRate)
  985.  THREEWORDINLINE(0x303C, 0x183, 0xAAAA);
  986. extern pascal OSErr InsertTrackSegment(Track srcTrack, Track dstTrack, TimeValue srcIn, TimeValue srcDuration, TimeValue dstIn)
  987.  THREEWORDINLINE(0x303C, 0x85, 0xAAAA);
  988. extern pascal OSErr InsertMovieSegment(Movie srcMovie, Movie dstMovie, TimeValue srcIn, TimeValue srcDuration, TimeValue dstIn)
  989.  THREEWORDINLINE(0x303C, 0x86, 0xAAAA);
  990. extern pascal OSErr InsertEmptyTrackSegment(Track dstTrack, TimeValue dstIn, TimeValue dstDuration)
  991.  THREEWORDINLINE(0x303C, 0x87, 0xAAAA);
  992. extern pascal OSErr InsertEmptyMovieSegment(Movie dstMovie, TimeValue dstIn, TimeValue dstDuration)
  993.  THREEWORDINLINE(0x303C, 0x88, 0xAAAA);
  994. extern pascal OSErr DeleteTrackSegment(Track theTrack, TimeValue in, TimeValue duration)
  995.  THREEWORDINLINE(0x303C, 0x89, 0xAAAA);
  996. extern pascal OSErr DeleteMovieSegment(Movie theMovie, TimeValue in, TimeValue duration)
  997.  THREEWORDINLINE(0x303C, 0x8A, 0xAAAA);
  998. extern pascal OSErr ScaleTrackSegment(Track theTrack, TimeValue in, TimeValue oldDuration, TimeValue newDuration)
  999.  THREEWORDINLINE(0x303C, 0x8B, 0xAAAA);
  1000. extern pascal OSErr ScaleMovieSegment(Movie theMovie, TimeValue in, TimeValue oldDuration, TimeValue newDuration)
  1001.  THREEWORDINLINE(0x303C, 0x8C, 0xAAAA);
  1002. extern pascal Movie CutMovieSelection(Movie theMovie)
  1003.  THREEWORDINLINE(0x303C, 0x8D, 0xAAAA);
  1004. extern pascal Movie CopyMovieSelection(Movie theMovie)
  1005.  THREEWORDINLINE(0x303C, 0x8E, 0xAAAA);
  1006. extern pascal void PasteMovieSelection(Movie theMovie, Movie src)
  1007.  THREEWORDINLINE(0x303C, 0x8F, 0xAAAA);
  1008. extern pascal void AddMovieSelection(Movie theMovie, Movie src)
  1009.  THREEWORDINLINE(0x303C, 0x152, 0xAAAA);
  1010. extern pascal void ClearMovieSelection(Movie theMovie)
  1011.  THREEWORDINLINE(0x303C, 0xE1, 0xAAAA);
  1012. extern pascal OSErr PasteHandleIntoMovie(Handle h, OSType handleType, Movie theMovie, long flags, ComponentInstance userComp)
  1013.  THREEWORDINLINE(0x303C, 0xCB, 0xAAAA);
  1014. extern pascal OSErr PutMovieIntoTypedHandle(Movie theMovie, Track targetTrack, OSType handleType, Handle publicMovie, TimeValue start, TimeValue dur, long flags, ComponentInstance userComp)
  1015.  THREEWORDINLINE(0x303C, 0x1CD, 0xAAAA);
  1016. extern pascal Component IsScrapMovie(Track targetTrack)
  1017.  THREEWORDINLINE(0x303C, 0xCC, 0xAAAA);
  1018. extern pascal OSErr CopyTrackSettings(Track srcTrack, Track dstTrack)
  1019.  THREEWORDINLINE(0x303C, 0x153, 0xAAAA);
  1020. extern pascal OSErr CopyMovieSettings(Movie srcMovie, Movie dstMovie)
  1021.  THREEWORDINLINE(0x303C, 0x154, 0xAAAA);
  1022. extern pascal MovieEditState NewMovieEditState(Movie theMovie)
  1023.  THREEWORDINLINE(0x303C, 0x104, 0xAAAA);
  1024. extern pascal OSErr UseMovieEditState(Movie theMovie, MovieEditState toState)
  1025.  THREEWORDINLINE(0x303C, 0x105, 0xAAAA);
  1026. extern pascal OSErr DisposeMovieEditState(MovieEditState state)
  1027.  THREEWORDINLINE(0x303C, 0x106, 0xAAAA);
  1028. extern pascal TrackEditState NewTrackEditState(Track theTrack)
  1029.  THREEWORDINLINE(0x303C, 0x107, 0xAAAA);
  1030. extern pascal OSErr UseTrackEditState(Track theTrack, TrackEditState state)
  1031.  THREEWORDINLINE(0x303C, 0x108, 0xAAAA);
  1032. extern pascal OSErr DisposeTrackEditState(TrackEditState state)
  1033.  THREEWORDINLINE(0x303C, 0x109, 0xAAAA);
  1034. extern pascal OSErr ConvertFileToMovieFile(const FSSpec *inputFile, const FSSpec *outputFile, OSType creator, ScriptCode scriptTag, short *resID, long flags, ComponentInstance userComp, MovieProgressUPP proc, long refCon)
  1035.  THREEWORDINLINE(0x303C, 0x1CB, 0xAAAA);
  1036. extern pascal OSErr ConvertMovieToFile(Movie theMovie, Track onlyTrack, const FSSpec *outputFile, OSType fileType, OSType creator, ScriptCode scriptTag, short *resID, long flags, ComponentInstance userComp)
  1037.  THREEWORDINLINE(0x303C, 0x1CC, 0xAAAA);
  1038. extern pascal TimeValue TrackTimeToMediaTime(TimeValue value, Track theTrack)
  1039.  THREEWORDINLINE(0x303C, 0x96, 0xAAAA);
  1040. extern pascal Fixed GetTrackEditRate(Track theTrack, TimeValue atTime)
  1041.  THREEWORDINLINE(0x303C, 0x123, 0xAAAA);
  1042. extern pascal long GetMovieDataSize(Movie theMovie, TimeValue startTime, TimeValue duration)
  1043.  THREEWORDINLINE(0x303C, 0x98, 0xAAAA);
  1044. extern pascal long GetTrackDataSize(Track theTrack, TimeValue startTime, TimeValue duration)
  1045.  THREEWORDINLINE(0x303C, 0x149, 0xAAAA);
  1046. extern pascal long GetMediaDataSize(Media theMedia, TimeValue startTime, TimeValue duration)
  1047.  THREEWORDINLINE(0x303C, 0x99, 0xAAAA);
  1048. extern pascal Boolean PtInMovie(Movie theMovie, Point pt)
  1049.  THREEWORDINLINE(0x303C, 0x9A, 0xAAAA);
  1050. extern pascal Boolean PtInTrack(Track theTrack, Point pt)
  1051.  THREEWORDINLINE(0x303C, 0x9B, 0xAAAA);
  1052. extern pascal void SetMovieLanguage(Movie theMovie, long language)
  1053.  THREEWORDINLINE(0x303C, 0x9C, 0xAAAA);
  1054. extern pascal OSErr GetUserData(UserData theUserData, Handle data, OSType udType, long index)
  1055.  THREEWORDINLINE(0x303C, 0x9E, 0xAAAA);
  1056. extern pascal OSErr AddUserData(UserData theUserData, Handle data, OSType udType)
  1057.  THREEWORDINLINE(0x303C, 0x9F, 0xAAAA);
  1058. extern pascal OSErr RemoveUserData(UserData theUserData, OSType udType, long index)
  1059.  THREEWORDINLINE(0x303C, 0xA0, 0xAAAA);
  1060. extern pascal short CountUserDataType(UserData theUserData, OSType udType)
  1061.  THREEWORDINLINE(0x303C, 0x14B, 0xAAAA);
  1062. extern pascal long GetNextUserDataType(UserData theUserData, OSType udType)
  1063.  THREEWORDINLINE(0x303C, 0x1A5, 0xAAAA);
  1064. extern pascal OSErr GetUserDataItem(UserData theUserData, void *data, long size, OSType udType, long index)
  1065.  THREEWORDINLINE(0x303C, 0x126, 0xAAAA);
  1066. extern pascal OSErr SetUserDataItem(UserData theUserData, void *data, long size, OSType udType, long index)
  1067.  THREEWORDINLINE(0x303C, 0x12E, 0xAAAA);
  1068. extern pascal OSErr AddUserDataText(UserData theUserData, Handle data, OSType udType, long index, short itlRegionTag)
  1069.  THREEWORDINLINE(0x303C, 0x14C, 0xAAAA);
  1070. extern pascal OSErr GetUserDataText(UserData theUserData, Handle data, OSType udType, long index, short itlRegionTag)
  1071.  THREEWORDINLINE(0x303C, 0x14D, 0xAAAA);
  1072. extern pascal OSErr RemoveUserDataText(UserData theUserData, OSType udType, long index, short itlRegionTag)
  1073.  THREEWORDINLINE(0x303C, 0x14E, 0xAAAA);
  1074. extern pascal OSErr NewUserData(UserData *theUserData)
  1075.  THREEWORDINLINE(0x303C, 0x12F, 0xAAAA);
  1076. extern pascal OSErr DisposeUserData(UserData theUserData)
  1077.  THREEWORDINLINE(0x303C, 0x130, 0xAAAA);
  1078. extern pascal OSErr NewUserDataFromHandle(Handle h, UserData *theUserData)
  1079.  THREEWORDINLINE(0x303C, 0x131, 0xAAAA);
  1080. extern pascal OSErr PutUserDataIntoHandle(UserData theUserData, Handle h)
  1081.  THREEWORDINLINE(0x303C, 0x132, 0xAAAA);
  1082. extern pascal void GetMediaNextInterestingTime(Media theMedia, short interestingTimeFlags, TimeValue time, Fixed rate, TimeValue *interestingTime, TimeValue *interestingDuration)
  1083.  THREEWORDINLINE(0x303C, 0x16D, 0xAAAA);
  1084. extern pascal void GetTrackNextInterestingTime(Track theTrack, short interestingTimeFlags, TimeValue time, Fixed rate, TimeValue *interestingTime, TimeValue *interestingDuration)
  1085.  THREEWORDINLINE(0x303C, 0xE2, 0xAAAA);
  1086. extern pascal void GetMovieNextInterestingTime(Movie theMovie, short interestingTimeFlags, short numMediaTypes, const OSType *whichMediaTypes, TimeValue time, Fixed rate, TimeValue *interestingTime, TimeValue *interestingDuration)
  1087.  THREEWORDINLINE(0x303C, 0x10E, 0xAAAA);
  1088. extern pascal OSErr CreateMovieFile(const FSSpec *fileSpec, OSType creator, ScriptCode scriptTag, long createMovieFileFlags, short *resRefNum, Movie *newmovie)
  1089.  THREEWORDINLINE(0x303C, 0x191, 0xAAAA);
  1090. extern pascal OSErr OpenMovieFile(const FSSpec *fileSpec, short *resRefNum, char perms)
  1091.  THREEWORDINLINE(0x303C, 0x192, 0xAAAA);
  1092. extern pascal OSErr CloseMovieFile(short resRefNum)
  1093.  THREEWORDINLINE(0x303C, 0xD5, 0xAAAA);
  1094. extern pascal OSErr DeleteMovieFile(const FSSpec *fileSpec)
  1095.  THREEWORDINLINE(0x303C, 0x175, 0xAAAA);
  1096. extern pascal OSErr NewMovieFromFile(Movie *theMovie, short resRefNum, short *resId, StringPtr resName, short newMovieFlags, Boolean *dataRefWasChanged)
  1097.  THREEWORDINLINE(0x303C, 0xF0, 0xAAAA);
  1098. extern pascal OSErr NewMovieFromHandle(Movie *theMovie, Handle h, short newMovieFlags, Boolean *dataRefWasChanged)
  1099.  THREEWORDINLINE(0x303C, 0xF1, 0xAAAA);
  1100. extern pascal OSErr NewMovieFromDataFork(Movie *theMovie, short fRefNum, long fileOffset, short newMovieFlags, Boolean *dataRefWasChanged)
  1101.  THREEWORDINLINE(0x303C, 0x1B3, 0xAAAA);
  1102. extern pascal OSErr AddMovieResource(Movie theMovie, short resRefNum, short *resId, const StringPtr resName)
  1103.  THREEWORDINLINE(0x303C, 0xD7, 0xAAAA);
  1104. extern pascal OSErr UpdateMovieResource(Movie theMovie, short resRefNum, short resId, const StringPtr resName)
  1105.  THREEWORDINLINE(0x303C, 0xD8, 0xAAAA);
  1106. extern pascal OSErr RemoveMovieResource(short resRefNum, short resId)
  1107.  THREEWORDINLINE(0x303C, 0x176, 0xAAAA);
  1108. extern pascal Boolean HasMovieChanged(Movie theMovie)
  1109.  THREEWORDINLINE(0x303C, 0xD9, 0xAAAA);
  1110. extern pascal void ClearMovieChanged(Movie theMovie)
  1111.  THREEWORDINLINE(0x303C, 0x113, 0xAAAA);
  1112. extern pascal OSErr SetMovieDefaultDataRef(Movie theMovie, Handle dataRef, OSType dataRefType)
  1113.  THREEWORDINLINE(0x303C, 0x1C1, 0xAAAA);
  1114. extern pascal OSErr GetMovieDefaultDataRef(Movie theMovie, Handle *dataRef, OSType *dataRefType)
  1115.  THREEWORDINLINE(0x303C, 0x1D2, 0xAAAA);
  1116. extern pascal void FlattenMovie(Movie theMovie, long movieFlattenFlags, const FSSpec *theFile, OSType creator, ScriptCode scriptTag, long createMovieFileFlags, short *resId, const StringPtr resName)
  1117.  THREEWORDINLINE(0x303C, 0x19B, 0xAAAA);
  1118. extern pascal Movie FlattenMovieData(Movie theMovie, long movieFlattenFlags, const FSSpec *theFile, OSType creator, ScriptCode scriptTag, long createMovieFileFlags)
  1119.  THREEWORDINLINE(0x303C, 0x19C, 0xAAAA);
  1120. extern pascal void SetMovieProgressProc(Movie theMovie, MovieProgressUPP p, long refcon)
  1121.  THREEWORDINLINE(0x303C, 0x19A, 0xAAAA);
  1122. extern pascal HandlerError GetVideoMediaGraphicsMode(MediaHandler mh, long *graphicsMode, RGBColor *opColor)
  1123.  FIVEWORDINLINE(0x2F3C, 0x8, 0x101, 0x7000, 0xA82A);
  1124. extern pascal HandlerError SetVideoMediaGraphicsMode(MediaHandler mh, long graphicsMode, const RGBColor *opColor)
  1125.  FIVEWORDINLINE(0x2F3C, 0x8, 0x102, 0x7000, 0xA82A);
  1126. extern pascal HandlerError GetSoundMediaBalance(MediaHandler mh, short *balance)
  1127.  FIVEWORDINLINE(0x2F3C, 0x4, 0x101, 0x7000, 0xA82A);
  1128. extern pascal HandlerError SetSoundMediaBalance(MediaHandler mh, short balance)
  1129.  FIVEWORDINLINE(0x2F3C, 0x2, 0x102, 0x7000, 0xA82A);
  1130. enum  {
  1131.     txtProcDefaultDisplay        = 0,
  1132.     txtProcDontDisplay            = 1,
  1133.     txtProcDoDisplay            = 2
  1134. };
  1135.  
  1136. typedef pascal OSErr (*TextMediaProcPtr)(Handle theText, Movie theMovie, short *displayFlag, long refcon);
  1137.  
  1138. enum {
  1139.     uppTextMediaProcInfo = kPascalStackBased
  1140.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  1141.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  1142.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Movie)))
  1143.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short*)))
  1144.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  1145. };
  1146.  
  1147. #if USESROUTINEDESCRIPTORS
  1148. typedef UniversalProcPtr TextMediaUPP;
  1149.  
  1150. #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon)        \
  1151.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTextMediaProcInfo, (theText), (theMovie), (displayFlag), (refcon))
  1152. #define NewTextMediaProc(userRoutine)        \
  1153.         (TextMediaUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTextMediaProcInfo, GetCurrentISA())
  1154. #else
  1155. typedef TextMediaProcPtr TextMediaUPP;
  1156.  
  1157. #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon)        \
  1158.         (*(userRoutine))((theText), (theMovie), (displayFlag), (refcon))
  1159. #define NewTextMediaProc(userRoutine)        \
  1160.         (TextMediaUPP)(userRoutine)
  1161. #endif
  1162.  
  1163. extern pascal ComponentResult SetTextProc(MediaHandler mh, TextMediaUPP TextProc, long refcon)
  1164.  FIVEWORDINLINE(0x2F3C, 0x8, 0x101, 0x7000, 0xA82A);
  1165. extern pascal ComponentResult AddTextSample(MediaHandler mh, Ptr text, unsigned long size, short fontNumber, short fontSize, Style textFace, RGBColor *textColor, RGBColor *backColor, short textJustification, Rect *textBox, long displayFlags, TimeValue scrollDelay, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor, TimeValue duration, TimeValue *sampleTime)
  1166.  FIVEWORDINLINE(0x2F3C, 0x34, 0x102, 0x7000, 0xA82A);
  1167. extern pascal ComponentResult AddTESample(MediaHandler mh, TEHandle hTE, RGBColor *backColor, short textJustification, Rect *textBox, long displayFlags, TimeValue scrollDelay, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor, TimeValue duration, TimeValue *sampleTime)
  1168.  FIVEWORDINLINE(0x2F3C, 0x26, 0x103, 0x7000, 0xA82A);
  1169. extern pascal ComponentResult AddHiliteSample(MediaHandler mh, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor, TimeValue duration, TimeValue *sampleTime)
  1170.  FIVEWORDINLINE(0x2F3C, 0x10, 0x104, 0x7000, 0xA82A);
  1171. enum  {
  1172.     findTextEdgeOK                = 1 << 0,
  1173.     findTextCaseSensitive        = 1 << 1,
  1174.     findTextReverseSearch        = 1 << 2,
  1175.     findTextWrapAround            = 1 << 3,
  1176.     findTextUseOffset            = 1 << 4
  1177. };
  1178.  
  1179. extern pascal ComponentResult FindNextText(MediaHandler mh, Ptr text, long size, short findFlags, TimeValue startTime, TimeValue *foundTime, TimeValue *foundDuration, long *offset)
  1180.  FIVEWORDINLINE(0x2F3C, 0x1A, 0x105, 0x7000, 0xA82A);
  1181. extern pascal ComponentResult HiliteTextSample(MediaHandler mh, TimeValue sampleTime, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor)
  1182.  FIVEWORDINLINE(0x2F3C, 0xC, 0x106, 0x7000, 0xA82A);
  1183. #define dropShadowOffsetType 'drpo'
  1184.  
  1185. #define dropShadowTranslucencyType 'drpt'
  1186.  
  1187. extern pascal ComponentResult SetTextSampleData(MediaHandler mh, void *data, OSType dataType)
  1188.  FIVEWORDINLINE(0x2F3C, 0x8, 0x107, 0x7000, 0xA82A);
  1189. extern pascal void GetPosterBox(Movie theMovie, Rect *boxRect)
  1190.  THREEWORDINLINE(0x303C, 0x16F, 0xAAAA);
  1191. extern pascal void SetPosterBox(Movie theMovie, const Rect *boxRect)
  1192.  THREEWORDINLINE(0x303C, 0x170, 0xAAAA);
  1193. extern pascal RgnHandle GetMovieSegmentDisplayBoundsRgn(Movie theMovie, TimeValue time, TimeValue duration)
  1194.  THREEWORDINLINE(0x303C, 0x16C, 0xAAAA);
  1195. extern pascal RgnHandle GetTrackSegmentDisplayBoundsRgn(Track theTrack, TimeValue time, TimeValue duration)
  1196.  THREEWORDINLINE(0x303C, 0x16B, 0xAAAA);
  1197. extern pascal void SetMovieCoverProcs(Movie theMovie, MovieRgnCoverUPP uncoverProc, MovieRgnCoverUPP coverProc, long refcon)
  1198.  THREEWORDINLINE(0x303C, 0x179, 0xAAAA);
  1199. extern pascal OSErr GetMovieCoverProcs(Movie theMovie, MovieRgnCoverUPP *uncoverProc, MovieRgnCoverUPP *coverProc, long *refcon)
  1200.  THREEWORDINLINE(0x303C, 0x1DD, 0xAAAA);
  1201. extern pascal ComponentResult GetTrackStatus(Track theTrack)
  1202.  THREEWORDINLINE(0x303C, 0x172, 0xAAAA);
  1203. extern pascal ComponentResult GetMovieStatus(Movie theMovie, Track *firstProblemTrack)
  1204.  THREEWORDINLINE(0x303C, 0x173, 0xAAAA);
  1205. extern pascal ComponentInstance NewMovieController(Movie theMovie, const Rect *movieRect, long someFlags)
  1206.  THREEWORDINLINE(0x303C, 0x18A, 0xAAAA);
  1207. extern pascal void DisposeMovieController(ComponentInstance mc)
  1208.  THREEWORDINLINE(0x303C, 0x18B, 0xAAAA);
  1209. extern pascal OSErr PutMovieOnScrap(Movie theMovie, long movieScrapFlags)
  1210.  THREEWORDINLINE(0x303C, 0x18C, 0xAAAA);
  1211. extern pascal Movie NewMovieFromScrap(long newMovieFlags)
  1212.  THREEWORDINLINE(0x303C, 0x18D, 0xAAAA);
  1213. extern pascal OSErr GetMediaDataRef(Media theMedia, short index, Handle *dataRef, OSType *dataRefType, long *dataRefAttributes)
  1214.  THREEWORDINLINE(0x303C, 0x197, 0xAAAA);
  1215. extern pascal OSErr SetMediaDataRef(Media theMedia, short index, Handle dataRef, OSType dataRefType)
  1216.  THREEWORDINLINE(0x303C, 0x1C9, 0xAAAA);
  1217. extern pascal OSErr SetMediaDataRefAttributes(Media theMedia, short index, long dataRefAttributes)
  1218.  THREEWORDINLINE(0x303C, 0x1CA, 0xAAAA);
  1219. extern pascal OSErr AddMediaDataRef(Media theMedia, short *index, Handle dataRef, OSType dataRefType)
  1220.  THREEWORDINLINE(0x303C, 0x198, 0xAAAA);
  1221. extern pascal OSErr GetMediaDataRefCount(Media theMedia, short *count)
  1222.  THREEWORDINLINE(0x303C, 0x199, 0xAAAA);
  1223. extern pascal void SetMoviePlayHints(Movie theMovie, long flags, long flagsMask)
  1224.  THREEWORDINLINE(0x303C, 0x1A1, 0xAAAA);
  1225. extern pascal void SetMediaPlayHints(Media theMedia, long flags, long flagsMask)
  1226.  THREEWORDINLINE(0x303C, 0x1A2, 0xAAAA);
  1227. #ifdef __cplusplus
  1228. }
  1229. #endif
  1230.  
  1231. #define MovieControllerComponentType 'play'
  1232.  
  1233. typedef ComponentInstance MovieController;
  1234.  
  1235. enum  {
  1236.     mcActionIdle                = 1,
  1237.     mcActionDraw                = 2,
  1238.     mcActionActivate            = 3,
  1239.     mcActionDeactivate            = 4,
  1240.     mcActionMouseDown            = 5,
  1241.     mcActionKey                    = 6,
  1242.     mcActionPlay                = 8,
  1243.     mcActionGoToTime            = 12,
  1244.     mcActionSetVolume            = 14,
  1245.     mcActionGetVolume            = 15,
  1246.     mcActionStep                = 18,
  1247.     mcActionSetLooping            = 21,
  1248.     mcActionGetLooping            = 22,
  1249.     mcActionSetLoopIsPalindrome    = 23,
  1250.     mcActionGetLoopIsPalindrome    = 24,
  1251.     mcActionSetGrowBoxBounds    = 25,
  1252.     mcActionControllerSizeChanged = 26,
  1253.     mcActionSetSelectionBegin    = 29,
  1254.     mcActionSetSelectionDuration = 30,
  1255.     mcActionSetKeysEnabled        = 32,
  1256.     mcActionGetKeysEnabled        = 33,
  1257.     mcActionSetPlaySelection    = 34,
  1258.     mcActionGetPlaySelection    = 35,
  1259.     mcActionSetUseBadge            = 36,
  1260.     mcActionGetUseBadge            = 37,
  1261.     mcActionSetFlags            = 38,
  1262.     mcActionGetFlags            = 39,
  1263.     mcActionSetPlayEveryFrame    = 40,
  1264.     mcActionGetPlayEveryFrame    = 41,
  1265.     mcActionGetPlayRate            = 42,
  1266.     mcActionShowBalloon            = 43,
  1267.     mcActionBadgeClick            = 44,
  1268.     mcActionMovieClick            = 45,
  1269.     mcActionSuspend                = 46,
  1270.     mcActionResume                = 47
  1271. };
  1272.  
  1273. typedef short mcAction;
  1274.  
  1275. enum  {
  1276.     mcFlagSuppressMovieFrame    = 1 << 0,
  1277.     mcFlagSuppressStepButtons    = 1 << 1,
  1278.     mcFlagSuppressSpeakerButton    = 1 << 2,
  1279.     mcFlagsUseWindowPalette        = 1 << 3
  1280. };
  1281.  
  1282. enum  {
  1283.     mcPositionDontInvalidate    = 1 << 5
  1284. };
  1285.  
  1286. typedef unsigned long mcFlags;
  1287.  
  1288. typedef pascal Boolean (*MCActionFilterProcPtr)(MovieController mc, short *action, void *params);
  1289.  
  1290. enum {
  1291.     uppMCActionFilterProcInfo = kPascalStackBased
  1292.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  1293.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MovieController)))
  1294.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short*)))
  1295.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*)))
  1296. };
  1297.  
  1298. #if USESROUTINEDESCRIPTORS
  1299. typedef UniversalProcPtr MCActionFilterUPP;
  1300.  
  1301. #define CallMCActionFilterProc(userRoutine, mc, action, params)        \
  1302.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMCActionFilterProcInfo, (mc), (action), (params))
  1303. #define NewMCActionFilterProc(userRoutine)        \
  1304.         (MCActionFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterProcInfo, GetCurrentISA())
  1305. #else
  1306. typedef MCActionFilterProcPtr MCActionFilterUPP;
  1307.  
  1308. #define CallMCActionFilterProc(userRoutine, mc, action, params)        \
  1309.         (*(userRoutine))((mc), (action), (params))
  1310. #define NewMCActionFilterProc(userRoutine)        \
  1311.         (MCActionFilterUPP)(userRoutine)
  1312. #endif
  1313.  
  1314. typedef pascal Boolean (*MCActionFilterWithRefConProcPtr)(MovieController mc, short action, void *params, long refCon);
  1315.  
  1316. enum {
  1317.     uppMCActionFilterWithRefConProcInfo = kPascalStackBased
  1318.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  1319.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MovieController)))
  1320.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  1321.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*)))
  1322.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  1323. };
  1324.  
  1325. #if USESROUTINEDESCRIPTORS
  1326. typedef UniversalProcPtr MCActionFilterWithRefConUPP;
  1327.  
  1328. #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon)        \
  1329.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, (mc), (action), (params), (refCon))
  1330. #define NewMCActionFilterWithRefConProc(userRoutine)        \
  1331.         (MCActionFilterWithRefConUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, GetCurrentISA())
  1332. #else
  1333. typedef MCActionFilterWithRefConProcPtr MCActionFilterWithRefConUPP;
  1334.  
  1335. #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon)        \
  1336.         (*(userRoutine))((mc), (action), (params), (refCon))
  1337. #define NewMCActionFilterWithRefConProc(userRoutine)        \
  1338.         (MCActionFilterWithRefConUPP)(userRoutine)
  1339. #endif
  1340.  
  1341. enum  {
  1342.     mcInfoUndoAvailable            = 1 << 0,
  1343.     mcInfoCutAvailable            = 1 << 1,
  1344.     mcInfoCopyAvailable            = 1 << 2,
  1345.     mcInfoPasteAvailable        = 1 << 3,
  1346.     mcInfoClearAvailable        = 1 << 4,
  1347.     mcInfoHasSound                = 1 << 5,
  1348.     mcInfoIsPlaying                = 1 << 6,
  1349.     mcInfoIsLooping                = 1 << 7,
  1350.     mcInfoIsInPalindrome        = 1 << 8,
  1351.     mcInfoEditingEnabled        = 1 << 9
  1352. };
  1353.  
  1354. enum  {
  1355.     mcMenuUndo                    = 1,
  1356.     mcMenuCut                    = 3,
  1357.     mcMenuCopy                    = 4,
  1358.     mcMenuPaste                    = 5,
  1359.     mcMenuClear                    = 6
  1360. };
  1361.  
  1362. #ifdef __cplusplus
  1363. extern "C" {
  1364. #endif
  1365.  
  1366. extern pascal ComponentResult MCSetMovie(MovieController mc, Movie theMovie, WindowPtr movieWindow, Point where)
  1367.  FIVEWORDINLINE(0x2F3C, 0xC, 0x2, 0x7000, 0xA82A);
  1368. extern pascal Movie MCGetMovieExtended(MovieController mc, short unused)
  1369.  FIVEWORDINLINE(0x2F3C, 0x2, 0x5, 0x7000, 0xA82A);
  1370. #define MCGetMovie(mc) MCGetMovieExtended(mc, 0)
  1371.  
  1372. extern pascal ComponentResult MCRemoveMovie(MovieController mc)
  1373.  FIVEWORDINLINE(0x2F3C, 0, 0x6, 0x7000, 0xA82A);
  1374. extern pascal ComponentResult MCIsPlayerEvent(MovieController mc, const EventRecord *e)
  1375.  FIVEWORDINLINE(0x2F3C, 0x4, 0x7, 0x7000, 0xA82A);
  1376. extern pascal ComponentResult MCSetActionFilter(MovieController mc, MCActionFilterUPP blob)
  1377.  FIVEWORDINLINE(0x2F3C, 0x4, 0x8, 0x7000, 0xA82A);
  1378. extern pascal ComponentResult MCDoAction(MovieController mc, short action, void *params)
  1379.  FIVEWORDINLINE(0x2F3C, 0x6, 0x9, 0x7000, 0xA82A);
  1380. extern pascal ComponentResult MCSetControllerAttached(MovieController mc, Boolean attach)
  1381.  FIVEWORDINLINE(0x2F3C, 0x2, 0xA, 0x7000, 0xA82A);
  1382. extern pascal ComponentResult MCIsControllerAttached(MovieController mc)
  1383.  FIVEWORDINLINE(0x2F3C, 0, 0xB, 0x7000, 0xA82A);
  1384. extern pascal ComponentResult MCSetControllerPort(MovieController mc, CGrafPtr gp)
  1385.  FIVEWORDINLINE(0x2F3C, 0x4, 0xC, 0x7000, 0xA82A);
  1386. extern pascal CGrafPtr MCGetControllerPort(MovieController mc)
  1387.  FIVEWORDINLINE(0x2F3C, 0, 0xD, 0x7000, 0xA82A);
  1388. extern pascal ComponentResult MCSetVisible(MovieController mc, Boolean visible)
  1389.  FIVEWORDINLINE(0x2F3C, 0x2, 0xE, 0x7000, 0xA82A);
  1390. extern pascal ComponentResult MCGetVisible(MovieController mc)
  1391.  FIVEWORDINLINE(0x2F3C, 0, 0xF, 0x7000, 0xA82A);
  1392. extern pascal ComponentResult MCGetControllerBoundsRect(MovieController mc, Rect *bounds)
  1393.  FIVEWORDINLINE(0x2F3C, 0x4, 0x10, 0x7000, 0xA82A);
  1394. extern pascal ComponentResult MCSetControllerBoundsRect(MovieController mc, const Rect *bounds)
  1395.  FIVEWORDINLINE(0x2F3C, 0x4, 0x11, 0x7000, 0xA82A);
  1396. extern pascal RgnHandle MCGetControllerBoundsRgn(MovieController mc)
  1397.  FIVEWORDINLINE(0x2F3C, 0, 0x12, 0x7000, 0xA82A);
  1398. extern pascal RgnHandle MCGetWindowRgn(MovieController mc, WindowPtr w)
  1399.  FIVEWORDINLINE(0x2F3C, 0x4, 0x13, 0x7000, 0xA82A);
  1400. extern pascal ComponentResult MCMovieChanged(MovieController mc, Movie m)
  1401.  FIVEWORDINLINE(0x2F3C, 0x4, 0x14, 0x7000, 0xA82A);
  1402. extern pascal ComponentResult MCSetDuration(MovieController mc, TimeValue duration)
  1403.  FIVEWORDINLINE(0x2F3C, 0x4, 0x15, 0x7000, 0xA82A);
  1404. extern pascal TimeValue MCGetCurrentTime(MovieController mc, TimeScale *scale)
  1405.  FIVEWORDINLINE(0x2F3C, 0x4, 0x16, 0x7000, 0xA82A);
  1406. extern pascal ComponentResult MCNewAttachedController(MovieController mc, Movie theMovie, WindowPtr w, Point where)
  1407.  FIVEWORDINLINE(0x2F3C, 0xC, 0x17, 0x7000, 0xA82A);
  1408. extern pascal ComponentResult MCDraw(MovieController mc, WindowPtr w)
  1409.  FIVEWORDINLINE(0x2F3C, 0x4, 0x18, 0x7000, 0xA82A);
  1410. extern pascal ComponentResult MCActivate(MovieController mc, WindowPtr w, Boolean activate)
  1411.  FIVEWORDINLINE(0x2F3C, 0x6, 0x19, 0x7000, 0xA82A);
  1412. extern pascal ComponentResult MCIdle(MovieController mc)
  1413.  FIVEWORDINLINE(0x2F3C, 0, 0x1A, 0x7000, 0xA82A);
  1414. extern pascal ComponentResult MCKey(MovieController mc, char key, long modifiers)
  1415.  FIVEWORDINLINE(0x2F3C, 0x6, 0x1B, 0x7000, 0xA82A);
  1416. extern pascal ComponentResult MCClick(MovieController mc, WindowPtr w, Point where, long when, long modifiers)
  1417.  FIVEWORDINLINE(0x2F3C, 0x10, 0x1C, 0x7000, 0xA82A);
  1418. extern pascal ComponentResult MCEnableEditing(MovieController mc, Boolean enabled)
  1419.  FIVEWORDINLINE(0x2F3C, 0x2, 0x1D, 0x7000, 0xA82A);
  1420. extern pascal long MCIsEditingEnabled(MovieController mc)
  1421.  FIVEWORDINLINE(0x2F3C, 0, 0x1E, 0x7000, 0xA82A);
  1422. extern pascal Movie MCCopy(MovieController mc)
  1423.  FIVEWORDINLINE(0x2F3C, 0, 0x1F, 0x7000, 0xA82A);
  1424. extern pascal Movie MCCut(MovieController mc)
  1425.  FIVEWORDINLINE(0x2F3C, 0, 0x20, 0x7000, 0xA82A);
  1426. extern pascal ComponentResult MCPaste(MovieController mc, Movie srcMovie)
  1427.  FIVEWORDINLINE(0x2F3C, 0x4, 0x21, 0x7000, 0xA82A);
  1428. extern pascal ComponentResult MCClear(MovieController mc)
  1429.  FIVEWORDINLINE(0x2F3C, 0, 0x22, 0x7000, 0xA82A);
  1430. extern pascal ComponentResult MCUndo(MovieController mc)
  1431.  FIVEWORDINLINE(0x2F3C, 0, 0x23, 0x7000, 0xA82A);
  1432. extern pascal ComponentResult MCPositionController(MovieController mc, const Rect *movieRect, const Rect *controllerRect, long someFlags)
  1433.  FIVEWORDINLINE(0x2F3C, 0xC, 0x24, 0x7000, 0xA82A);
  1434. extern pascal ComponentResult MCGetControllerInfo(MovieController mc, long *someFlags)
  1435.  FIVEWORDINLINE(0x2F3C, 0x4, 0x25, 0x7000, 0xA82A);
  1436. extern pascal ComponentResult MCSetClip(MovieController mc, RgnHandle theClip, RgnHandle movieClip)
  1437.  FIVEWORDINLINE(0x2F3C, 0x8, 0x28, 0x7000, 0xA82A);
  1438. extern pascal ComponentResult MCGetClip(MovieController mc, RgnHandle *theClip, RgnHandle *movieClip)
  1439.  FIVEWORDINLINE(0x2F3C, 0x8, 0x29, 0x7000, 0xA82A);
  1440. extern pascal ComponentResult MCDrawBadge(MovieController mc, RgnHandle movieRgn, RgnHandle *badgeRgn)
  1441.  FIVEWORDINLINE(0x2F3C, 0x8, 0x2A, 0x7000, 0xA82A);
  1442. extern pascal ComponentResult MCSetUpEditMenu(MovieController mc, long modifiers, MenuHandle mh)
  1443.  FIVEWORDINLINE(0x2F3C, 0x8, 0x2B, 0x7000, 0xA82A);
  1444. extern pascal ComponentResult MCGetMenuString(MovieController mc, long modifiers, short item, Str255 aString)
  1445.  FIVEWORDINLINE(0x2F3C, 0xA, 0x2C, 0x7000, 0xA82A);
  1446. extern pascal ComponentResult MCSetActionFilterWithRefCon(MovieController mc, MCActionFilterWithRefConUPP blob, long refCon)
  1447.  FIVEWORDINLINE(0x2F3C, 0x8, 0x2D, 0x7000, 0xA82A);
  1448. #ifdef __cplusplus
  1449. }
  1450. #endif
  1451.  
  1452. enum  {
  1453.     kMCSetMovieSelect            = 0x2,
  1454.     kMCRemoveMovieSelect        = 0x6,
  1455.     kMCIsPlayerEventSelect        = 0x7,
  1456.     kMCSetActionFilterSelect    = 0x8,
  1457.     kMCDoActionSelect            = 0x9,
  1458.     kMCSetControllerAttachedSelect = 0xA,
  1459.     kMCIsControllerAttachedSelect = 0xB,
  1460.     kMCSetControllerPortSelect    = 0xC,
  1461.     kMCGetControllerPortSelect    = 0xD,
  1462.     kMCSetVisibleSelect            = 0xE,
  1463.     kMCGetVisibleSelect            = 0xF,
  1464.     kMCGetControllerBoundsRectSelect = 0x10,
  1465.     kMCSetControllerBoundsRectSelect = 0x11,
  1466.     kMCGetControllerBoundsRgnSelect = 0x12,
  1467.     kMCGetWindowRgnSelect        = 0x13,
  1468.     kMCMovieChangedSelect        = 0x14,
  1469.     kMCSetDurationSelect        = 0x15,
  1470.     kMCGetCurrentTimeSelect        = 0x16,
  1471.     kMCNewAttachedControllerSelect = 0x17,
  1472.     kMCDrawSelect                = 0x18,
  1473.     kMCActivateSelect            = 0x19,
  1474.     kMCIdleSelect                = 0x1A,
  1475.     kMCKeySelect                = 0x1B,
  1476.     kMCClickSelect                = 0x1C,
  1477.     kMCEnableEditingSelect        = 0x1D,
  1478.     kMCIsEditingEnabledSelect    = 0x1E,
  1479.     kMCCopySelect                = 0x1F,
  1480.     kMCCutSelect                = 0x20,
  1481.     kMCPasteSelect                = 0x21,
  1482.     kMCClearSelect                = 0x22,
  1483.     kMCUndoSelect                = 0x23,
  1484.     kMCPositionControllerSelect    = 0x24,
  1485.     kMCGetControllerInfoSelect    = 0x25,
  1486.     kMCSetClipSelect            = 0x28,
  1487.     kMCGetClipSelect            = 0x29,
  1488.     kMCDrawBadgeSelect            = 0x2A,
  1489.     kMCSetUpEditMenuSelect        = 0x2B,
  1490.     kMCGetMenuStringSelect        = 0x2C,
  1491.     kMCSetActionFilterWithRefConSelect = 0x2D
  1492. };
  1493.  
  1494. #ifdef __cplusplus
  1495. extern "C" {
  1496. #endif
  1497.  
  1498. extern pascal TimeBase NewTimeBase(void)
  1499.  THREEWORDINLINE(0x303C, 0xA5, 0xAAAA);
  1500. extern pascal void DisposeTimeBase(TimeBase tb)
  1501.  THREEWORDINLINE(0x303C, 0xB6, 0xAAAA);
  1502. extern pascal TimeValue GetTimeBaseTime(TimeBase tb, TimeScale s, TimeRecord *tr)
  1503.  THREEWORDINLINE(0x303C, 0xA6, 0xAAAA);
  1504. extern pascal void SetTimeBaseTime(TimeBase tb, const TimeRecord *tr)
  1505.  THREEWORDINLINE(0x303C, 0xA7, 0xAAAA);
  1506. extern pascal void SetTimeBaseValue(TimeBase tb, TimeValue t, TimeScale s)
  1507.  THREEWORDINLINE(0x303C, 0xA8, 0xAAAA);
  1508. extern pascal Fixed GetTimeBaseRate(TimeBase tb)
  1509.  THREEWORDINLINE(0x303C, 0xA9, 0xAAAA);
  1510. extern pascal void SetTimeBaseRate(TimeBase tb, Fixed r)
  1511.  THREEWORDINLINE(0x303C, 0xAA, 0xAAAA);
  1512. extern pascal TimeValue GetTimeBaseStartTime(TimeBase tb, TimeScale s, TimeRecord *tr)
  1513.  THREEWORDINLINE(0x303C, 0xAB, 0xAAAA);
  1514. extern pascal void SetTimeBaseStartTime(TimeBase tb, const TimeRecord *tr)
  1515.  THREEWORDINLINE(0x303C, 0xAC, 0xAAAA);
  1516. extern pascal TimeValue GetTimeBaseStopTime(TimeBase tb, TimeScale s, TimeRecord *tr)
  1517.  THREEWORDINLINE(0x303C, 0xAD, 0xAAAA);
  1518. extern pascal void SetTimeBaseStopTime(TimeBase tb, const TimeRecord *tr)
  1519.  THREEWORDINLINE(0x303C, 0xAE, 0xAAAA);
  1520. extern pascal long GetTimeBaseFlags(TimeBase tb)
  1521.  THREEWORDINLINE(0x303C, 0xB1, 0xAAAA);
  1522. extern pascal void SetTimeBaseFlags(TimeBase tb, long timeBaseFlags)
  1523.  THREEWORDINLINE(0x303C, 0xB2, 0xAAAA);
  1524. extern pascal void SetTimeBaseMasterTimeBase(TimeBase slave, TimeBase master, const TimeRecord *slaveZero)
  1525.  THREEWORDINLINE(0x303C, 0xB4, 0xAAAA);
  1526. extern pascal TimeBase GetTimeBaseMasterTimeBase(TimeBase tb)
  1527.  THREEWORDINLINE(0x303C, 0xAF, 0xAAAA);
  1528. extern pascal void SetTimeBaseMasterClock(TimeBase slave, Component clockMeister, const TimeRecord *slaveZero)
  1529.  THREEWORDINLINE(0x303C, 0xB3, 0xAAAA);
  1530. extern pascal ComponentInstance GetTimeBaseMasterClock(TimeBase tb)
  1531.  THREEWORDINLINE(0x303C, 0xB0, 0xAAAA);
  1532. extern pascal void ConvertTime(TimeRecord *inout, TimeBase newBase)
  1533.  THREEWORDINLINE(0x303C, 0xB5, 0xAAAA);
  1534. extern pascal void ConvertTimeScale(TimeRecord *inout, TimeScale newScale)
  1535.  THREEWORDINLINE(0x303C, 0xB7, 0xAAAA);
  1536. extern pascal void AddTime(TimeRecord *dst, const TimeRecord *src)
  1537.  THREEWORDINLINE(0x303C, 0x10C, 0xAAAA);
  1538. extern pascal void SubtractTime(TimeRecord *dst, const TimeRecord *src)
  1539.  THREEWORDINLINE(0x303C, 0x10D, 0xAAAA);
  1540. extern pascal long GetTimeBaseStatus(TimeBase tb, TimeRecord *unpinnedTime)
  1541.  THREEWORDINLINE(0x303C, 0x10B, 0xAAAA);
  1542. extern pascal void SetTimeBaseZero(TimeBase tb, TimeRecord *zero)
  1543.  THREEWORDINLINE(0x303C, 0x128, 0xAAAA);
  1544. extern pascal Fixed GetTimeBaseEffectiveRate(TimeBase tb)
  1545.  THREEWORDINLINE(0x303C, 0x124, 0xAAAA);
  1546. extern pascal QTCallBack NewCallBack(TimeBase tb, short cbType)
  1547.  THREEWORDINLINE(0x303C, 0xEB, 0xAAAA);
  1548. extern pascal void DisposeCallBack(QTCallBack cb)
  1549.  THREEWORDINLINE(0x303C, 0xEC, 0xAAAA);
  1550. extern pascal short GetCallBackType(QTCallBack cb)
  1551.  THREEWORDINLINE(0x303C, 0xED, 0xAAAA);
  1552. extern pascal TimeBase GetCallBackTimeBase(QTCallBack cb)
  1553.  THREEWORDINLINE(0x303C, 0xEE, 0xAAAA);
  1554. extern pascal OSErr CallMeWhen(QTCallBack cb, QTCallBackUPP callBackProc, long refCon, long param1, long param2, long param3)
  1555.  THREEWORDINLINE(0x303C, 0xB8, 0xAAAA);
  1556. extern pascal void CancelCallBack(QTCallBack cb)
  1557.  THREEWORDINLINE(0x303C, 0xB9, 0xAAAA);
  1558. extern pascal OSErr AddCallBackToTimeBase(QTCallBack cb)
  1559.  THREEWORDINLINE(0x303C, 0x129, 0xAAAA);
  1560. extern pascal OSErr RemoveCallBackFromTimeBase(QTCallBack cb)
  1561.  THREEWORDINLINE(0x303C, 0x12A, 0xAAAA);
  1562. extern pascal QTCallBack GetFirstCallBack(TimeBase tb)
  1563.  THREEWORDINLINE(0x303C, 0x12B, 0xAAAA);
  1564. extern pascal QTCallBack GetNextCallBack(QTCallBack cb)
  1565.  THREEWORDINLINE(0x303C, 0x12C, 0xAAAA);
  1566. extern pascal void ExecuteCallBack(QTCallBack cb)
  1567.  THREEWORDINLINE(0x303C, 0x12D, 0xAAAA);
  1568. #ifdef __cplusplus
  1569. }
  1570. #endif
  1571.  
  1572. #endif
  1573.  
  1574.